﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using vudu.Logica.Clases;

namespace vudu.EnlaceDatos.SqlServer
{
    public class SqlServerUniversidad
    {
        #region Atributos

        Conexion _miConexion;

        #endregion 

        public SqlServerUniversidad()
        {
            _miConexion = new Conexion();
        }

        /// <summary>
        /// METODO DEL GRUPO 3: CONSULTA LAS UNIVERSIDADES QUE NO TIENE ROL
        /// </summary>
        /// <returns>Lista de Universidades</returns>
        public List<Universidad> ConsultarUniversidades()
        {
            List<Universidad> lista = new List<Universidad>(); // declaracion de la lista de universidades
            SqlCommand command = new SqlCommand();

            try
            {
                _miConexion.AbrirConexionBd();
                command.Connection = _miConexion.ObjetoConexion();
                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.CommandText = "[dbo].[ConsultarUniversidadRol]"; // nombre del storedProcedure
                command.CommandTimeout = 10;

                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    Universidad univ = new Universidad(); // se inicializa el objeto universidad
                    univ.IdUniv = reader.GetInt32(0);
                    univ.Nombre = reader["nombre"].ToString();
                    lista.Add(univ); // Se agrega cada universidad a la lista
                }
                reader.Close();
                _miConexion.CerrarConexionBd();              
            }
            catch (SqlException)
            {
                lista = null;
            }
            catch (NullReferenceException)
            {
                lista = null;
            }
            catch (Exception)
            {
                lista = null;
            }
            finally
            {
                _miConexion.CerrarConexionBd();
            }
            return lista;
        }
    }
}